﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Web;
using BLL.SchemaDiscovery;

namespace SVC.SchemaDiscovery
{
    [ServiceContract(Namespace = "")]
    public interface ISchemaService
    {
        [OperationContract]
        List<string> ListDatabaseServers();
        [OperationContract]
        List<string> ListDatabases(string serverName);
        [OperationContract]
        List<string> ListDatabases2(string serverName, string userName, string password);
        [OperationContract]
        List<string> ListDbSchemas(string serverName, string dbName);
        [OperationContract]
        List<string> ListDbSchemas2(string serverName, string dbName, string userName, string password);
        [OperationContract]
        List<string> ListTables(string serverName, string dbName, string schemaName);
        [OperationContract]
        List<string> ListTables2(string serverName, string dbName, string userName, string password, string schemaName);
        [OperationContract]
        List<string> ListTableColumnNames(string serverName, string dbName, string schemaName, string tableName);
        [OperationContract]
        List<string> ListTableColumnNames2(string serverName, string dbName, string userName, string password, string schemaName, string tableName);
        [OperationContract]
        List<string> ListTableColumnNamesUsingSQL(string serverName, string dbName, string sql);
        [OperationContract]
        List<string> ListTableColumnNamesUsingSQL2(string serverName, string dbName, string userName, string password, string sql);
        [OperationContract]
        List<ColumnNameType> ListTableColumns(string serverName, string dbName, string schemaName, string tableName);
        [OperationContract]
        List<ColumnNameType> ListTableColumns2(string serverName, string dbName, string userName, string password, string schemaName, string tableName);
    }
}
